package antlr.arrayInitTest;

import antlr.arrayInitGen.ArrayInitBaseListener;
import antlr.arrayInitGen.ArrayInitParser;

public class ShortToUnicodeString extends ArrayInitBaseListener {

    //将  { 翻译为 "
    @Override
    public void enterInit(ArrayInitParser.InitContext ctx) {
        System.out.print('"');
    }

    @Override
    public void exitInit(ArrayInitParser.InitContext ctx) {
        System.out.print('"');
    }

    @Override
    public void enterValue(ArrayInitParser.ValueContext ctx) {
        if (ctx.INT() == null) {
            System.out.print(ctx.INT());
        } else {
            //将每个整数翻译为四位的十六进制形式，然后加前缀\\u
            System.out.printf("\\u%04x", Integer.valueOf(ctx.INT().getText()));
        }
    }
}
